Ana içeriğe geç
  1. 100 Günde SwiftUI Notları/

4.Gün - Swift Type Annotation Nedir? Neden İhtiyaç Duyarız? Ne Zaman Kullanırız?

Swift, oluşturduğumuz sabit (let) veya değişkenin (var) türünü ilk verdiğimiz değere göre belirleyebilmektedir. Fakat bazı durumlarda bu değeri hemen atamak veya Swift’in bizim yerimize tür belirlemesine izin vermek istemeyebiliriz.

let surname = "Lasso"
var score = 0

Yukarıda yapılan işleme type inference denilmektedir. Type inference ‘e göre surname değişkeni String, score değişkeni ise Int olarak belirlenmektedir.

Type annotations sayesinde hangi veri türünü istediğimizi açıkça belirtilebiliriz ve aşağıdaki gibi kullanılabiliriz.

let surname: String = "Lasso"
var score: Int = 0

Bazı durumlarda değişkenin tipini kendimiz belirlemek isteyebiliriz.

var score: Double = 0

Eğer yukarıdaki kodda :Double kısmını eklemeseydik, Swift score değişkeninin tipini Int olarak belirleyecekti.

Şu ana kadar öğrendiğimiz değişken türlerini, type annotations kullanarak değişken tanımlarken kullanalım.

String #

let playerName: String = "Roy"

Int #

var luckyNumber: Int = 13

Double #

let pi: Double = 3.141

Bool #

var isAuthenticated: Bool = true

Array #

Array’in hangi türde olacağı [String] yazılarak belirlenmiştir.

var albums: [String] = ["Red", "Fearless"]

Dictionary #

Dictionary’nin [String: String] şeklinde Key ve Value türüne sahip olduğu belirtilmiştir.

var user: [String: String] = ["id": "@twostraws"]

Set #

var books: Set<String> = Set(["The Bluest Eye", "Foundation", "Girl, Woman, Other"])

Type Annotation ’a Neden İhtiyaç Duyarız? #

Type annotation ‘ın en genel kullanımı, henüz bir değer atamadığımız sabitlerde (let) karşımıza çıkar.

let username: String
// bazı karmaşık kodlar bu aralıkta var.
username = "@twostraws"
// bazı karmaşık kodlar bu aralıkta var.
print(username)

username ’in kodun herhangi bir yerinde bir String içereceğini söylüyoruz. Kodumuzun ilerleyen yerlerinde, username sabitinin değer atamasını gerçekleştiriyoruz. Kodumuzun daha da ilerleyen kısımlarında print ile username sabitinin değerini kullanıyoruz. Tabiki gerçek projelerde bu kadar basit kodlarla değil.

username ‘in değer atamasını yapmadan önce print(username) ’i kullanmaya çalışsaydık Xcode bize hata verecekti. Ayrıca username ‘e bir kez atama yaptığımız için, 2.kez atama yapmaya çalışsaydık yine Xcode bizi bu konuda uyaracaktı.

Bu tip bir kod için type annotation ‘a ihtiyaç duyarız, çünkü başlangıç değeri atanmadan Swift username ’in ne tür bir veri içereceğini bilemez.

Type Annotation ‘a Ne Zaman İhtiyaç Duyarız? #

  1. Swift hangi türü kullanmasını bilemediği zamanlarda.

    Bu genelde daha gelişmiş kodlarda karşımıza çıkar. Örneğin internetten bir veri indirdiğimizi varsayalım, Swift varsayılan olarak bu verinin türünü belirleyemez bu durumda türü biz belirlemeliyiz.

  2. Swift’in varsayılan olarak atadığı türü kullanmak istemediğimizde.

    Örneğin tam sayı ataması yaparak, Double sayı kullanmak istediğimizde type annotation’ı kullanırız.

    var percentage: Double = 99
    

    Yukarıdaki kodda, biz tam sayı olarak 99 değerini atamamıza rağmen percentage ’ın değeri 99.0 olur.

  3. Henüz bir değer ataması yapmak istemediğimizde.

    Değişkenin var olacağını, fakat değerini henüz ayarlamak istemediğimiz durumlarda type annotation’ı kullanırız.

Bu yazıyı İngilizce olarak da okuyabilirsiniz.
You can also read this article in English.

Bu yazı, SwiftUI Day 4 adresinde bulunan yazılardan kendim için aldığım notları içermektedir. Orjinal dersi takip etmek için lütfen bağlantıya tıklayın.